package com.ryan.demo.xstream.mas.model;

import java.util.ArrayList;
import java.util.List;

import com.ryan.demo.xstream.mas.model.info.ConInfo;
import com.ryan.demo.xstream.mas.model.info.FgwInfo;
import com.ryan.demo.xstream.mas.model.info.FinInfo;
import com.ryan.demo.xstream.mas.model.info.MerInfo;
import com.ryan.demo.xstream.mas.model.info.MgwInfo;
import com.ryan.demo.xstream.mas.model.info.OqsInfo;
import com.ryan.demo.xstream.mas.model.info.TerInfo;
import com.ryan.demo.xstream.mas.model.info.Tr3Info;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.thoughtworks.xstream.annotations.XStreamOmitField;


/**
 * @Project mas
 * @Description 请求报文分组
 * @Company 99bill
 * @Create 2012-2-24
 * @author frank.wu
 */
	
public class MOReqGroup {
	
	/**
	 * orderItemNo
	 */
	@XStreamAsAttribute
	private String orderItemNo;
	
	/**
	 * 商户号
	 */
	@XStreamAsAttribute
	private String merchantId;
	
	/**
	 * 操作类型
	 * XStreamOmitField为xstream不处理的字段
	 */
	@XStreamOmitField
//	private OperationTypeEnum operationType;
	
	/**
	 * 商户信息
	 */
	private MerInfo merchant;
	
	/**
	 * 财务控制信息
	 */
	private FinInfo finance;
	
	/**
	 * TR3通知信息
	 */
	private Tr3Info tr3;
	
	/**
	 * 订单查询设置信息
	 */
	private OqsInfo oqs;
	
	/**
	 * 手续费合同信息
	 */
	private ConInfo contract;
	
	/**
	 * 商户网关信息
	 */
	private MgwInfo mgw;
	
	/**
	 * 外卡网关信息
	 */
	@XStreamImplicit(itemFieldName="fgw")
	private List<FgwInfo> fgw;
	
	/**
	 * 终端信息
	 */
	@XStreamImplicit(itemFieldName="terminal")
	private List<TerInfo> terminal;
	
	public MOReqGroup() {
		terminal = new ArrayList<TerInfo>();
		fgw = new ArrayList<FgwInfo>();
	}

	/**
	 * @return the orderItemNo
	 */
	public String getOrderItemNo() {
		return orderItemNo;
	}

	/**
	 * @param orderItemNo the orderItemNo to set
	 */
	public void setOrderItemNo(String orderItemNo) {
		this.orderItemNo = orderItemNo;
	}

	/**
	 * @return the merchantId
	 */
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * @param merchantId the merchantId to set
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * @return the terminal
	 */
	public List<TerInfo> getTerminal() {
		return terminal;
	}

	/**
	 * @param terminal the terminal to set
	 */
	public void setTerminal(List<TerInfo> terminal) {
		this.terminal = terminal;
	}

	/**
	 * @return the merchant
	 */
	public MerInfo getMerchant() {
		return merchant;
	}

	/**
	 * @param merchant the merchant to set
	 */
	public void setMerchant(MerInfo merchant) {
		this.merchant = merchant;
	}

	/**
	 * @return the finance
	 */
	public FinInfo getFinance() {
		return finance;
	}

	/**
	 * @param finance the finance to set
	 */
	public void setFinance(FinInfo finance) {
		this.finance = finance;
	}

	/**
	 * @return the tr3
	 */
	public Tr3Info getTr3() {
		return tr3;
	}

	/**
	 * @param tr3 the tr3 to set
	 */
	public void setTr3(Tr3Info tr3) {
		this.tr3 = tr3;
	}

	/**
	 * @return the oqs
	 */
	public OqsInfo getOqs() {
		return oqs;
	}

	/**
	 * @param oqs the oqs to set
	 */
	public void setOqs(OqsInfo oqs) {
		this.oqs = oqs;
	}

	/**
	 * @return the contract
	 */
	public ConInfo getContract() {
		return contract;
	}

	/**
	 * @param contract the contract to set
	 */
	public void setContract(ConInfo contract) {
		this.contract = contract;
	}

	/**
	 * @return the mgw
	 */
	public MgwInfo getMgw() {
		return mgw;
	}

	/**
	 * @param mgw the mgw to set
	 */
	public void setMgw(MgwInfo mgw) {
		this.mgw = mgw;
	}

	/**
	 * @return the fgw
	 */
	public List<FgwInfo> getFgw() {
		return fgw;
	}

	/**
	 * @param fgw the fgw to set
	 */
	public void setFgw(List<FgwInfo> fgw) {
		this.fgw = fgw;
	}
/*
	*//**
	 * @return the operationType
	 *//*
	public OperationTypeEnum getOperationType() {
		return operationType;
	}

	*//**
	 * @param operationType the operationType to set
	 *//*
	public void setOperationType(OperationTypeEnum operationType) {
		this.operationType = operationType;
	}
	*/
}